import apiClient from './apiClient'

/**
 * 视频生成相关API
 */
export const videoApi = {
  /**
   * 生成视频
   * @param {FormData} formData - 表单数据，包含prompt, model, seconds, size, input_reference
   */
  generateVideo(formData) {
    // 视频生成需要较长时间，设置超时时间为300秒（5分钟）
    return apiClient.post('/videos', formData, {
      timeout: 300000,
      headers: {
        'Content-Type': 'multipart/form-data'
      }
    })
  },

  /**
   * 查询视频任务状态
   * @param {string} videoId - 视频任务ID
   */
  getVideoTask(videoId) {
    return apiClient.get(`/videos/${videoId}`)
  },

  /**
   * 获取视频内容（下载视频）
   * @param {string} videoId - 视频任务ID
   * @param {string} variant - 下载资源类型，默认MP4
   */
  async getVideoContent(videoId, variant = null) {
    const params = variant ? { variant } : {}
    const response = await apiClient.get(`/videos/${videoId}/content`, {
      params,
      responseType: 'blob',
      timeout: 60000
    })
    // 如果返回的是blob，直接返回
    if (response instanceof Blob) {
      return response
    }
    // 否则需要转换为blob
    return new Blob([response], { type: 'video/mp4' })
  }
}

export default videoApi

